extern "C" int __stdcall _DllMainCRTStartup(void* hinst, unsigned reason, void* reserved) {hinst;reason;reserved;return 1;}
extern "C" void _(){}

void* __cdecl operator new(unsigned int) { return 0; }
void* __cdecl operator new[](unsigned int) { return 0; }
void __cdecl operator delete(void*) {}
void __cdecl operator delete[](void*) {}

class __declspec(dllexport) exception
{
public:
	exception();
	exception(const char* const&);
	exception(const exception&);
	exception& operator=(const exception&);
	virtual ~exception();
	virtual const char* what() const;
	void operator delete(void*);
	void operator delete[](void*);
};

exception::exception() {}
exception::exception(const char* const&) {}
exception::exception(const exception&) {}
exception& exception::operator=(const exception&) { return *this; }
exception::~exception() {}
const char* exception::what() const { return 0; }
void exception::operator delete(void*) {}
void exception::operator delete[](void*) {}

class __declspec(dllexport) type_info
{
public:
	virtual ~type_info();
	int operator==(const type_info&) const;
	int operator!=(const type_info&) const;
	int before(const type_info&) const;
	const char* name() const;
	const char* raw_name() const;
};

type_info::~type_info() {}
int type_info::operator==(const type_info&) const { return 0; }
int type_info::operator!=(const type_info&) const { return 0; }
int type_info::before(const type_info&) const { return 0; }
const char* type_info::name() const { return 0; }
const char* type_info::raw_name() const { return 0; }
